'use strict'

define(['jquery' , 'bootstrap' , 'select2' , 'shiftform' , 'validate' , 'validate.en' , 'uploader' ,'plupload' , 'qiniu'] , function($) {
  return {
    
  init : function(){
    
    this.editQrcode();
    this.deleteQrcode();
    this.createQrcode();
    
  },
  
  createQrcode : function(){
    
     var that = this;
      
    $(document).on("shown.bs.modal" , "#create-qrcode" , function(e){

    that.initUpload();
    
    $(e.currentTarget).find('form[data-validate="true"]').bt_validate();  //bind validate
    
    var $form = $(e.currentTarget).find("form");                            //bind shiftform
    $form.shiftform({
      beforeSubmit : function(el) {
      $form.trigger("validate.ajax.submit");
      return $.bt_validate.result[$.bt_validate.form_id];
      }  
    });
      
    });
    
  },
    
  editQrcode : function(){
      var that = this;
      
    $(document).on("shown.bs.modal" , "#edit-qrcode" ,function(e){
    
    that.initUpload();
      
    $(e.currentTarget).find('form[data-validate="true"]').bt_validate();  //bind validate
      
        var $form = $(e.currentTarget).find("form")                          //bind shiftform
        $form.shiftform({
          beforeSubmit : function(el) {
            $form.trigger("validate.ajax.submit");
            return $.bt_validate.result[$.bt_validate.form_id];
          }
        });
        
      });
    
    },
    
    deleteQrcode : function(){
      
      $(document).on("shown.bs.modal" , "#delete-qrcode" ,function(e){  
       
      var $form = $(e.currentTarget).find("form")                          //bind shiftform
        $form.shiftform({
          beforeSubmit : function(el) {
            $form.trigger("validate.ajax.submit");
            return $.bt_validate.result[$.bt_validate.form_id];
          }
        });
      
      });
      
    },
    
    initUpload: function() {
     var imgSrc = $(".upload-barcode").find("img").attr("src");
      if(imgSrc == null || imgSrc == undefined) {
        $(".upload-barcode").find("img").addClass("hide");
      }
      
      
      $(".upload-barcode").hover(function(){
        $(".upload-barcode .edit-btn").addClass("in");
      },function(){
        $(".upload-barcode .edit-btn").removeClass("in");
      });
      
      $.ajax({
        
        url: window.__CTX__.cloudUptoken,
        // The name of the callback parameter, as specified by the YQL service
        jsonp: "callback",
        // Tell jQuery we're expecting JSONP
        dataType: "jsonp",
        // Work with the response
        success: function( response ) {
          var uploaderCover = Qiniu.uploader({
            runtimes: 'html5,flash,html4',
            browse_button: 'pickBarcode',
            uptoken: response.token,
            domain: 'http://upload.qiniu.com/',
            max_file_size: '4mb',
            max_retries: 3,
            chunk_size: '2mb',
            save_key: true,
            auto_start: true,
            init: {
              'UploadProgress': function(up, file) {
                $('#messageBarcode').removeClass("hide");
                $(".edit-btn").addClass("hide").prop("disabled", true);
                $('#messageBarcode').html("正在上传图片，请稍后");
                $('#submitBtn').attr("disabled", "disabled");
              },
              'FileUploaded': function(up, file, info) {
                var res = $.parseJSON(info);
                var barcode_box = '';
                $('#barcodePreview').attr("src", window.__CTX__.cloudProd + "/" + res.key + "-0.6");
                $('#barcodePreviewList').css("display", "block");
                $('#barcode').val(res.key);
                $('#messageBarcode').html("加载图片完成");
                setTimeout(function() {
                  $('#messageBarcode').addClass("hide");
                  $(".edit-btn").addClass("fade").removeClass("hide").prop("disabled", false).html("<span class='glyphicon glyphicon-repeat' aria-hidden='true'></span>&nbsp;&nbsp;重新上传");
                }, 2000);
                $('#submitBtn').removeAttr('disabled');
              },
              'Error': function(up, err, errTip) {
                $('#messageBarcode').html("图片上传异常，请稍后重试");
              }
            }
          });
        }
      });
    }
  }
})